<webpack>打包文件相关
打包js
- 命令行:webpack entry
output  
1  | webpack index.js bundle.js  | 
- webpack配置文件
 
打包ES6
- babel-loader:https://www.webpackjs.com/loaders/babel-loader/
 - babel配置:https://crazyaguai.github.io/2018/11/14/Babel%E9%85%8D%E7%BD%AE/
 
1  | {  | 
打包ts
处理css
- 处理css并提取公共代码
 - style-loader 创建style标签写入html中
 - css-loader js可以引入css
 
- loader
 
1  | {  | 
- plugin
 
1  | new ExtractTextPlugin({  | 
处理sass
- 安装依赖
 
1  | npm install sass-loader node-sass --save-dev  | 
- loader
 
1  | {  | 
- 压缩提取的css并且删除重复内容
 
1  | new OptimizeCSSPlugin({  | 
- css tree-shaking(对于变量css无法使用)
 
1  | new PurifyCss({  | 
PostCss
- 安装
 
1  | npm install postcss postcss-loader autoprefixer --save-dev  | 
- Autoprefixer 添加浏览器前缀
 - css-nano 压缩css
 - css-next 使用css新语法(css Variables\custom selectors\calc)
 - postcss-sprites 转换雪碧图
 - 在sass-loader和css-loader之间使用
 
1  | {  | 
Tree Shaking
js Tree Shaking
- 使用场景:常规优化、使用第三方库的某一个功能
 - https://www.webpackjs.com/guides/tree-shaking/
 - lodash 需要配置babel babel-plugin-lodash插件
1
new webpack.optimize.UglifyJsPlugin()
 
css Tree Shaking
- 安装 purifycss-webpack
 - glob-all 支持多路径
 
1  | new PurifyCss({  | 
图片处理
- file-loader
 - url-loader
 - img-loader
 - postcss-sprites
 
1  | {  | 
字体文件处理
1  | {  | 
第三方js库
- webpack.providePlugin 不用在文件中import,webpack会注入
 
1  | webpack.providePlugin({  | 
- 使用别名引入非node_modules文件 https://www.webpackjs.com/configuration/resolve/, 然后再配置providePlugin
 
1  | resolve: {  | 
- imports-loader
 
1  | {  | 
提前加载webpack代码
- 将webpack代码插入html中
 - inline-manifest-webpack-plugin 提取manifest文件到html中,减少浏览器请求,与htmlwebpackplugin搭配可能会有BUG,推荐使用下边的
 - html-webpack-inline-chunk-plugin
 
1  | new HtmlInlineChunkPlugin({  |